package com.it;

public class StringDemo {
    public static void main(String[] args) {
        String s1 = "abc";
        String s2 = "abc";
        System.out.println(s1 == s2);

        //== 比较的是引用地址，比较的不是值
        String s3 = new String("abc");
        System.out.println(s1 == s3);


        String str = "ssabcdefg";
        int length = str.length();//获取字符串长度
        System.out.println("length = " + length);


        /**
         * toCharArray()
         * 将此字符串转换为一个新的字符数组。
         */
        char[] charArray = str.toCharArray();
        for (int i = 0; i < charArray.length; i++) {
            System.out.println(charArray[i]);
        }

        // indexOf(int ch) 返回索引在这个字符串的第一次出现的指定子字符串。如果没有返回-1
        int i = str.indexOf("ac");
        System.out.println("i = " + i);

        /**
         * indexOf(String str, int fromIndex)
         * 返回索引在这个字符串的第一次出现的指定子字符串,从指定的索引开始，包括这个索引
         */
        String str11 = "think you java";
        int i1 = str11.indexOf("in", 0);
        System.out.println("i1 = " + i1);

        /**
         * lastIndexOf(String str)
         * 返回索引在这个字符串的最后发生指定的子串。
         */
        int i2 = str11.lastIndexOf("java");
        System.out.println("i2 = " + i2);

        /**
         * substring(int beginIndex, int endIndex)
         * 返回一个字符串,这个字符串的子字符串。(含头不含尾)
         * 截取字符串
         */
        String substring = str11.substring(1, 3);
        System.out.println("substring = " + substring);

        /**
         * trim()
         * 返回一个字符串,其值是字符串,删除任何前导和尾随空白。
         */
        String str22 = "   abc   ";
        String trim = str22.trim();
        System.out.println("trim = " + trim);

        /**
         * charAt(int index)
         * 返回 char指定索引值。
         */
        String str33 = "hello world";
        char c = str33.charAt(1);
        System.out.println("c = " + c);

        /**
         * startsWith(String prefix)
         * 测试如果这个字符串以指定的前缀开始。
         */
        String str44 = "hehehelo";
        boolean b = str44.startsWith("hehe");
        System.out.println("b = " + b);

        /**
         * endsWith(String suffix)
         * 如果这个字符串以指定的后缀结束测试。
         */
        String str55 = "hello world";
        boolean b1 = str55.endsWith("ld");
        System.out.println("b1 = " + b1);

        /**
         * toUpperCase()
         * 将所有的角色在这个 String大写使用默认语言环境的规则。
         */
        String str66 = "abcvlopdfghKJOml";
        String upperCase = str66.toUpperCase();
        System.out.println("upperCase = " + upperCase);

        /**
         * toLowerCase()
         * 将所有的角色在这个 String小写使用默认语言环境的规则。
         */
        String str77 = "ABHDJSkislsoHUJ";
        String lowerCase = str77.toLowerCase();
        System.out.println("lowerCase = " + lowerCase);

        /**
         * 判断2个字符串是否一致，忽略大小写
         * equals() 比较的是字符串值
         * equalsIgnoreCase() 比较2个字符串的值，忽略大小写
         */

        String name1 = "AGHK";
        String name2 = "aghk";
        String lowerCase1 = name1.toLowerCase();
        String lowerCase2 = name2.toLowerCase();
        System.out.println(lowerCase1.equals(lowerCase2));

        System.out.println(name1.equalsIgnoreCase(name2));

        /**
         * 把一个基本数据类型转为String类型
         */
        int a = 100;
        String s = String.valueOf(a);//性能高
        System.out.println("s = " + s);

        String s11 = a + "";//性能低
        System.out.println("s11 = " + s11);

    }
}
